Nel mondo di Rust, il compilatore è la tua prima linea di difesa, che rileva perdite di memoria e incongruenze di tipo prima che si verifichino. Tuttavia, il compilatore non può conoscere il tuo intento. È qui che entra in gioco il testing automatizzato come una "rete di sicurezza" per la correttezza logica.
1. Il duo complementare
Mentre il sistema dei tipi gestisce l'integrità strutturale, i test verificano il comportamento funzionale. In un progetto di libreria, il compilatore garantisce che tu non passi una stringa a una funzione matematica, ma solo un test assicura che $f(x) = y$ produca il risultato atteso.
2. Ciclo di vita standard
I test di Rust seguono una rigorosa sequenza di tre fasi:
- Preparazione: Inizializza i dati (ad esempio, creando un'istanza della libreria).
- Esegui: Esegui la logica specifica che stai analizzando.
- Verifica: Verifica lo stato utilizzando macro come
assert_eq!.
Lo strumentario integrato supporta Doc-tests (esempi eseguibili nella documentazione) e test di benchmark per garantire che il tuo codice rimanga estremamente veloce.